The invention relates to a method for transporting data between application programs assigned to different interconnected computers of a computer network. The invention relates furthermore to a computer network for implementing the method.
Belonging to the existing methods of this kind are the transport protocols TCP (transmission control protocol) and UDP (user datagram protocol) located between the data processing layer (or application program layer) and the network access protocol layer (e.g. Ethernet or Token Ring) and each based on the internet protocol IP, termed TCP/IP and UDP/IP respectively in the following. Both protocols are implemented as a rule in parallel in a network system.
Both TCP/IP and UDP/IP have drawbacks when the aim is to achieve a real-time oriented network system.
In such a system several computers operating real-time oriented are interconnected which work with special real-time operating systems whose system functions have a known delay response. Real-time oriented means that the computers are each able to react to an incoming signal within a predetermined, usually very short, period in time.
When the different computers of the network are required to solve together an overall task extensive data traffic is, of course, needed between the computers, requiring data swapping between two computers operated real-time oriented to itself be configured real-time oriented to solve the overall task real-time oriented, i.e. with a precisely determined timing response. In addition it needs to be assured that the data transport between two computers of the real-time oriented network is absolutely secure and reliable.
Although TCP/IP assures secure data transport it was not developed for real-time network systems and thus fails to take into account some aspects which are vital to the stable response of such systems. Particularly important in this respect is that TCP/IP fails to xe2x80x9cseexe2x80x9d in due time when connections are lost or computer components are down or when data packets fail to be received on time and thus are processed too late. In addition to this, there is no assurance that the data sent by one computer to another arrives within a time window dictated by the requirements of the real-time system.
Since TCP/IP operates connection-oriented, many sockets (the communication end points in a network means; a socket being composed of a computer number and a port number) need to be handled when all computers of a distributed system intercommunicate which likewise has a negative effect on the delay response. Relinking a down computer is difficult and time-consuming since all connections at both the transmitting end and the receiving end need to be re-installed.
UDP/IP works substantially faster than TCP/IP since it is a datagram protocol operating connectionless. With UDP/IP it is possible to send data from one given socket of a source computer to a socket of any destination computer in the network system without a connection needing to be made prior. Thus, as regards the speed of data swapping UDP/IP is basically better suited than TCP/IP for a distributed network system, it operating, unlike TCP/IP, message-oriented, i.e. in each read procedure a socket furnishes precisely one message.
Despite the advantages of UDP/IP over TCP/IP it is not suitable for the distributed real-time system as described above, made up of several computers operating real-time oriented, since it fails to furnish a secure data transport. Although under optimum conditions an UDP data packet transmitted by an application program of the source computer also arrives at the desired application program of the destination computer, its arrival may be prevented under other circumstances. For instance, the program receiving data may have yet to generate the receive socket when the first data packet has already arrived; or the receive buffer of the receive socket may be full when new data arrives. In these cases the packet is rejected. As already mentioned, UDP uses the IP protocol for transporting data from computer to computer. In this layer of the protocol too, the packet may get lost, e.g. due to the lack of routing information in a router/gateway. Sending data packets by means of UDP can be compared to sending postcards by mail, there is no guarantee of it arriving even though in most cases it does. When a postcard gets lost neither the sender nor the recipient is informed. In UDP too, no message is sent to the application program as to lost data packets. It is this lack of reliability that results in UDP not being directly applicable for data transfer in real-time systems.
The object of the invention is to obviate the aforementioned problems of existing TCP/IP and UDP/IP methods and to provide a method for transporting data between application programs assigned to different interconnected computers of a computer network which is suitable for the distributed real-time systems as described above. In addition the object is to provide a computer network having corresponding properties for implementing the method.
This object is achieved by a method for transporting data between application programs assigned to different interconnected computers of a computer network, the method being based on a connectionless and packet-oriented transport method capable of transporting the data packets between any computers of the network and comprising the steps:
initiating a retransmission timer timing out after a predetermined retransmission waiting period and an acknowledgement timer timing out after a predetermined acknowledgement waiting period when a data packet is transmitted from the application program of a source computer to the application program of a destination computer,
transferring the data packet, after it has been initially received by the destination computer, to the application program of the destination computer,
transmitting an acknowledgement packet to the source computer, each time the destination computer receives a data packet, to confirm receipt of the data packet,
retransmitting the data packet to the destination computer and reinitiating the retransmission timer in the event that receipt has still not been registered on timeout of the predetermined retransmission waiting period,
informing the application program of the source computer that receipt of the data packet has not been acknowledged within the acknowledgement waiting period if receipt of the acknowledgement packet has still not been registered on timeout of the predetermined acknowledgement waiting period in the source computer; and
informing the application program of the source computer that the data packet has been acknowledged within the acknowledgement waiting period if receipt of an acknowledgement packet within the predetermined acknowledgement waiting period in the source computer is registered for the first time.
The computer network for implementing the method comprises different interconnected computers of a computer network which are capable of swapping data packets between any computers of the network via a connectionless and packet-oriented transport method, each computer comprising:
means for monitoring the retransmission waiting period capable of being initiated when the computer, functioning as a source computer, sends a data packet from the application program of the computer to the application program of another computer functioning as the destination computer of the network, the means then sensing the time having passed since transmission of the data packet and timing out after a predetermined retransmission waiting period;
means for monitoring the acknowledgement waiting period capable of being initiated when the computer, functioning as a source computer, sends a data packet from the application program of the computer to the application program of another computer functioning as the destination computer of the network, the means then sensing the time having passed since initial transmission of the data packet and timing out after a predetermined acknowledgement waiting period;
means capable of transferring the packet to the application program of the computer after initial receipt of a data packet when the computer functions as a destination computer,
means capable of transmitting an acknowledgement packet confirming receipt to the source computer having transmitted the data packet every time a data packet is received, when the computer functions as a destination computer;
means capable of reinitiating the transmission of the data packet to the destination computer and the means for monitoring the acknowledgement waiting period when the computer functions as a source computer and receipt of the acknowledgement packet has not been registered by the computer on timeout of the predetermined retransmission waiting period and
means capable of informing the application program of the computerxe2x80x94when the computer functions as a source computer and receipt of the acknowledgement packet has not been registered by the computerxe2x80x94that receipt of the transmitted data packet was not acknowledged within the acknowledgement waiting period, and which are capable of informing the application program of the computer that the data packet was acknowledged within the acknowledgement waiting period when receipt of an acknowledgement packet is initially registered within the predetermined acknowledgement waiting period in the computer.
The gist of the method in accordance with the invention is based on supplementing a fast packet-oriented connectionless standard method for data transport between the application programs of different computers of a network, e.g. UDP/IP by the functions of recognizing the loss of transmitted data packets and late arrival of the data packets as important for distributed real-time systems.
Advantageous aspects and further embodiments of the invention are characterized in the sub-claims.